﻿/************************************************************************

 This file is part of "10 Second Tim".

 "10 Second Tim" is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation, either version 3 of the License, or
 (at your option) any later version.

 "10 Second Tim" is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.

 You should have received a copy of the GNU General Public License
 along with "10 Second Tim".  If not, see <http://www.gnu.org/licenses/>.

************************************************************************/

// All code (c)2013 Scott Bevin. all rights reserved

using Microsoft.Xna.Framework;

namespace LDE.Input
{
	public class InputButton
	{
		public bool Down = false;
		public bool DownLF = false;

		public float CurrStateTimer = 0.0f;
		public float PrevStateTimer = 0.0f;
	}

	public interface IInputDevice
	{
		int GetDeviceTypeId( );

		int GetDeviceId( );

		void UpdateState( float dt );

		bool IsConnected( );

		bool IsPointingDevice( );

		InputButton IsPressed( InputTrigger trigger );

		InputButton IsDown( InputTrigger trigger );

		InputButton IsHeld( InputTrigger trigger );

		InputButton IsReleased( InputTrigger trigger );

		InputButton IsTapped( InputTrigger trigger );

		Vector2 GetStickVals( );

		Point GetPointerPos( );
	}
}